<?php

namespace app\home\controller;

use think\Controller;
use think\Request;

class pay extends Controller
{
    public function pay()
    {
        //这是一个密匙
        $key = 'lhy510gpac4xiwy4hrpnckyqy7gdmqg0';
        //记住数组是以键值对的形式进行传值
        $data = [
            //基本参数
            'service' => 'create_direct_pay_by_user',//接口名称
            'partner' => 2088321002257695,//合作者身份id(有支付宝平台提供)
            '_input_charset' => 'UTF-8',//参数编码字符集
            'notify_url' => 'http://www.baidu.com',//服务器异步服务通知页面路径
            'return_url' => 'http://www.baidu.com',//页面跳转同步通知页面路径
            //业务参数
            'out_trade_no' => 'SG'.date('YmdHis').mt_rand(1,100),//商户网站唯一订单编号
            'subject' => 'test',//商品名称
            'payment_type' => 1,//支付类型
            'total_fee' => 0.01,//交易金额
            'seller_id' => 2088321002257695,//卖家支付宝用户号
            'body' => 'testtesttest'//商品描述(此项可以空)
        ];
        ksort($data);	//把数组排序
        reset($data);	//数组走到上边指针需要重新定位
        $urlStr = '';
        foreach ($data as $k => $v) {
            $urlStr .= $k . '=' . $v . '&';
        }
        $urlStr = rtrim($urlStr,'&');
        $sign_type = 'MD5';
        $sign = $sign_type($urlStr.$key);
        //不解析变量才会解析'&sign_type=' 相当于在url中的一种赋值方式
        $urlStr .= '&sign_type=' . $sign_type.'&sign='.$sign;
        //加上$key相当于给连接加盐//前边的连接是固定的
        header('location:https://mapi.alipay.com/gateway.do?'.$urlStr);

    }
}
